﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using EPiServer.Core;
using EPiServer.Security;
using EPiServer.Data.Dynamic;
using EPiServer.Data;

namespace EPiServer.DdsPageProvider
{
    public class Node : EPiServer.Data.Dynamic.IDynamicData
    {
        public Node()
        {
        }

        public Node(Guid id)
        {
            Id = Identity.NewIdentity(id);
            PageGuid = id;
        }

        public Guid PageGuid { get; set; }
        
        public string ArchiveLink { get; set; }
        //public string PageLink { get; set; }
        public string ParentLink { get; set; }
        
        //public AccessControlList    ACL                     { get; set; }
        public DateTime             Changed                 { get; set; }
        public string               ChangedBy               { get; set; }
        public DateTime             Created                 { get; set; }
        public string               CreatedBy               { get; set; }
        public bool                 IsDeleted               { get; set; }
        public string               LanguageBranch          { get; set; }
        public string               LanguageID              { get; set; }
        public PageShortcutType     LinkType                { get; set; }
        public string               LinkURL                 { get; set; }
        public string               MasterLanguageBranch    { get; set; }
        public string               PageName                { get; set; }
        public int                  PageTypeID              { get; set; }
        public string               PageTypeName            { get; set; }
        public bool                 PendingArchive          { get; set; }
        public bool                 PendingPublish          { get; set; }
        public DateTime             Saved                   { get; set; }
        public DateTime?            StartPublish            { get; set; }
        public string               StaticLinkURL           { get; set; }
        public VersionStatus        Status                  { get; set; }
        public DateTime?            StopPublish             { get; set; }
        public string               URLSegment              { get; set; }
        public bool                 VisibleInMenu           { get; set; }
		public int					WorkPageID				{ get; set; }
		public int					PeerOrder				{ get; set; }
		public int					ChildOrderRule			{ get; set; }

        public PageObjectCollection PageObjects { get; set; }

        //public PropertyBag Properties { get; set; }

        //public CategoryList Category { get; }
        //public object this[string index] { get; set; }

        #region IDynamicData Members

        public EPiServer.Data.Identity Id { get; set; }

        #endregion
    }
}
